package util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * 日期处理
 * 
 * @author chenshun
 * @email sunlightcs@gmail.com
 * @date 2016年12月21日 下午12:53:33
 */
public class DateUtils {
	//时间格式(yyyy-MM)
	public final static String MONTH_PATTERN="yyyy-MM";
	/** 时间格式(yyyy-MM-dd) */
	public final static String DATE_PATTERN = "yyyy-MM-dd";
	/** 时间格式(yyyy-MM-dd HH:mm:ss) */
	public final static String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
	//获取指定月份 格式为yyyy-MM
	public static String formatByMonth(int month) {
		Calendar c = Calendar.getInstance();
		c.add(Calendar.MONTH, month);
		SimpleDateFormat format =  new SimpleDateFormat(MONTH_PATTERN);
		String time = format.format(c.getTime());
		return time;
	}
	//获取指定日期 格式为yyyy-MM-dd
	public static String formatByDay(int day) {
		Calendar cal=Calendar.getInstance();
		cal.add(Calendar.DATE,day);
		Date d=cal.getTime();
		SimpleDateFormat sp=new SimpleDateFormat(DATE_PATTERN);
		String dayString=sp.format(d);//获取昨天日期
		return dayString;
	}
	//获取传递的日期是周几
	public static int dayForWeek(String pTime){  
		SimpleDateFormat format = new SimpleDateFormat(DATE_PATTERN);  
		Calendar c = Calendar.getInstance();  
		try {
			c.setTime(format.parse(pTime));
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}  
		int dayForWeek = c.get(Calendar.DAY_OF_WEEK);  
		return dayForWeek;  
	}
	//转换日期格式为yyyy-MM-dd HH:mm:ss
	public static String formatTime(Date date) {
		  return format(date, DATE_TIME_PATTERN);
	}
	//依据用户传递的日期和格式来获取时间
    public static String format(Date date, String pattern) {
        if(date != null){
            SimpleDateFormat df = new SimpleDateFormat(pattern);
            return df.format(date);
        }
        return null;
    }

}
